//! 追踪数据导出器
//! 
//! 提供多种格式的追踪数据导出功能

pub mod jaeger;
pub mod opentelemetry;
pub mod console;



use crate::*;
use async_trait::async_trait;

/// 追踪数据导出器接口
#[async_trait]
pub trait TraceExporter: Send + Sync {
    /// 导出追踪数据
    async fn export(&self, spans: &[TraceSpan]) -> TracingResult<String>;
    
    /// 获取导出器名称
    fn name(&self) -> &str;
    
    /// 获取支持的格式
    fn supported_format(&self) -> TraceExportFormat;
}

// 重新导出各个导出器
pub use jaeger::*;
pub use opentelemetry::*;
pub use console::*;